<?php

/* 公共方法 */

/**
 * 通用化API数据格式输出
 * @param  [string] $code       [状态码]
 * @param  [string] $message    [信息提示]
 * @param  [string] $data       [数据]
 * @param  [string] $httpStatus [Http状态码]
 * @return [mixed]              [数据格式]
 */
function show($code, $message = 'error', $data = [], $httpStatus = 200)
{
    $result = [
        'code' => $code,
        'message' => $message,
        'data' => $data
    ];
    return json($result, $httpStatus);
}

/**
 * 打印函数
 * @param  [mixed] $var [变量]
 * @return [mixed]      [格式化数据]
 */
function p($var)
{
    echo '<pre>' . htmlspecialchars(print_r($var, true)) . '</pre>';
}

/**
 * Curl远程请求
 * @param  [string] $url    [请求地址]
 * @param  [array]  $param  [POST参数]
 * @param  [boolen] $json   [Json]     [微信41005错误，使用false]
 * @return [mixed]          [请求结果]
 */
function curl($url, $param = [], $json = true)
{
    $curl = curl_init();                                    // 初始化
    curl_setopt($curl, CURLOPT_URL, $url);                  // 设置请求地址
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);       // 设置文件流返回
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);      // 证书来源检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);      // 检查SSL加密算法

    if (count($param)) {
        if ($json == true) {
            $param = json_encode($param);
        }
        curl_setopt($curl, CURLOPT_POST, true);             // 设置POST方式
        curl_setopt($curl, CURLOPT_POSTFIELDS, $param);     // 设置POST参数
    }

    $result = curl_exec($curl);                             // 执行请求
    if ($json == true) {
        $result = json_decode($result, true);               // 解析数据
    }
    curl_close($curl);                                      // 释放资源
    return $result;
}
